import { IPSDERBase } from './ipsderbase';
import { IPSLanguageRes } from '../../res/ipslanguage-res';

/**
 *
 * 继承父接口类型值[DER1N]
 * @export
 * @interface IPSDER1N
 */
export interface IPSDER1N extends IPSDERBase {
  /**
   * 克隆次序
   * @type {number}
   * @default -1
   */
  cloneOrder: number;

  /**
   * 自定义导出次序
   * @type {number}
   * @default -1
   */
  customExportOrder: number;

  /**
   * 自定义导出次序2
   * @type {number}
   * @default -1
   */
  customExportOrder2: number;

  /**
   * 导出引用数据模式
   * @description 值模式 [实体关系导出引用数据关系] {1：导出基本数据（只建立不更新） }
   * @type {( number | 1)}
   * @default -1
   */
  exportMajorModel: number | 1;

  /**
   * 主控次序
   * @type {number}
   */
  masterOrder: number;

  /**
   * 主从关系类型
   * @description 值模式 [实体1：N关系主从关系类型] {1：附属关系、 2：附属关系(N:N连接)、 4：数据访问控制、 8：嵌套操作、 16：递归关系 }
   * @type {( number | 1 | 2 | 4 | 8 | 16)}
   */
  masterRS: number | 1 | 2 | 4 | 8 | 16;

  /**
   * 关系属性名称
   * @type {string}
   */
  pickupDEFName: string;

  /**
   * 删除拒绝消息语言标记
   * @type {string}
   */
  rRMLanResTag: string;

  /**
   * 删除拒绝消息语言资源
   *
   * @type {IPSLanguageRes}
   */
  getRRMPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 删除方式
   * @description 值模式 [实体1：N关系主实体删除关系实体操作] {0：无操作、 1：同时删除、 2：置空、 3：限制删除 }
   * @type {( number | 0 | 1 | 2 | 3)}
   */
  removeActionType: number | 0 | 1 | 2 | 3;

  /**
   * 删除次序
   * @type {number}
   */
  removeOrder: number;

  /**
   * 删除拒绝消息
   * @type {string}
   */
  removeRejectMsg: string;

  /**
   * 支持克隆
   * @type {boolean}
   * @default false
   */
  cloneRS: boolean;

  /**
   * 关系属性回写
   * @type {boolean}
   * @default false
   */
  enableDEFieldWriteBack: boolean;

  /**
   * 启用附加约束
   * @type {boolean}
   * @default false
   */
  enableExtRestrict: boolean;

  /**
   * 启用父关系等价
   * @type {boolean}
   * @default false
   */
  enablePDEREQ: boolean;

  /**
   * 嵌套操作
   * @type {boolean}
   * @default false
   */
  nestedRS: boolean;

  /**
   * 递归关系
   * @type {boolean}
   * @default false
   */
  recursiveRS: boolean;
}
